<?php
session_start();
require "include/dbms.inc.php";
require "include/template.inc.php";
require "include/setcontents.inc.php";
require "include/accesscontrol.inc.php";
require "include/formcontrol.inc.php";

accesscontrol::controllo_privilegi();

function displaydefault(){
    if (!isset($_GET['by'])){
        $_GET['by']="nome";
    }
    $result = setcontents::getResult("SELECT * FROM servizio_erogato ORDER BY ".$_GET['by']." ".$_GET['ord']);

    global $body;
    $body = new Template ("dtml/pannello_servizi.html");
    $body->setContent("servizi_erog", $result);
}

if (isset($_GET['id'])){                                     
    $_POST['op']='visualizza';
                                                            
}

switch ($_POST['op']){

    case 'visualizza':
             $body=new Template("dtml/RiepilogoDatiInsServ.html");//template per la visualizzazione dettagli utente
             $result=setcontents::getResult("SELECT * FROM servizio_erogato WHERE servizio_erogato.id='{$_GET['id']}'");

             $message="Dati relativi al servizio selezionato recuperati";
             $style="message";

             $_POST=$result[0]; //inizializzo la variabile con il risultato della query per far precompilare il form
             $_POST['id']=$_GET['id']; //tengo traccia dell'id della tupla selezionata. Operazione necessaria a causa del precedente assegnamento
             formcontrol::precform($body,null);

        break;

    case 'registra':
        if (!isset($_POST['page'])) {
            $_POST['page'] = 0;//form non compilato
        }

        switch ($_POST['page']) {
            case '0':
                $body = new Template("dtml/inserimento_servizio.html");
                formcontrol::precform($body,null);
                break;
            
            case '1'://form compilato
                if(formcontrol::field($body,$message,$style)){//la funzione effettua dei controlli sui dati inseriti nel form e stampa il messaggio $message con lo stile $style. In $body restituisce il form precompilato
                    $message="Controllare i dati inseriti. Premere \"invia\" per confermare, altrimenti \"modifica\"";
                    $body = new Template("dtml/RiepilogoDatiInsServ.html");
                    formcontrol::precform($body,null);
                }
                break;

            case '2'://invia o modifica
                $body = new Template("dtml/inserimento_servizio.html");
                if ($_POST['action']=="invia"){//richiesta di inserimento
                    $nome = addslashes($_POST['nome']);
                    $descrizione = addslashes($_POST['descrizione']);
                    $oid = mysql_query("INSERT INTO servizio_erogato values('','{$nome}','{$descrizione}','{$_POST['durata']}','{$_POST['prezzo']}')");
                    if (!$oid){
                        $message="Inserimento fallito, errore nel database:".mysql_error();
                        $style="alert";
                        formcontrol::precform($body,"registrazione");
                    }else{
                        $message="Inserimento nuovo servizio eseguito con successo";
                        $style="message";
                        displaydefault();
                    }
                }else{//richiesta di modifica, viene ricaricato il form precompilato
                
                    formcontrol::precform($body,null);

                }
                break;
        }

        break;

    case 'modifica':
        if (!isset($_POST['page'])) {
            $_POST['page'] = 0;//form non compilato
        }

        switch ($_POST['page']) {
            case '2':
                $body = new Template("dtml/inserimento_servizio.html");
                formcontrol::precform($body,null);
                break;

            default://form compilato

                if(formcontrol::field($body,$message,$style)){//la funzione effettua dei controlli sui dati inseriti nel form e stampa il messaggio $message con lo stile $style. In $body restituisce il form precompilato
                    $nome = addslashes($_POST['nome']);
                    $descrizione = addslashes($_POST['descrizione']);
                    $oid = mysql_query("UPDATE servizio_erogato SET nome='{$nome}',descrizione='{$descrizione}',durata='{$_POST['durata']}',prezzo='{$_POST['prezzo']}' WHERE id='{$_POST['id']}'");
                    if (!$oid){
                        $message="Inserimento fallito, errore nel database:".mysql_error();
                        $style="alert";
                        formcontrol::precform($body,null);
                    }else{
                        $message="Modifica servizio eseguita con successo";
                        $style="message";
                        displaydefault();
                    }
                }
                break;
                
        }
        break;

    case 'elimina':
        if (!isset($_POST['check'])){
            $message="Nessun servizio selezionato";
               $style="alert";

        }else{
            $ut=$_POST['check'];
            $message="Eliminazione conclusa con successo";
            $style="message";
            foreach ($ut as $k => $v){
                $oid=mysql_query("DELETE FROM servizio_erogato WHERE servizio_erogato.id='{$v}'");

                if (!$oid){
                   $message="Errore durante l'eliminazione".mysql_error();
                   $style="alert";
                   break;
                }
            }
        }

        displaydefault();
        break;

    default:
        displaydefault();
}




setcontents::setTemplate();
setcontents::setMenu($message,$style);
setcontents::setBody($body);

$main->close();

?>